From a69280ed5e81dcbe255ea616068c21edc5e39470 Mon Sep 17 00:00:00 2001 From: Alastair Tse Date: Thu, 12 Oct 2006 12:27:56 +0100 Subject: [PATCH] [XEND] Add some sort of rudimentary version embedding into the source so we can report the Xend version number as opposed to Xen's version number. Signed-off-by: Alastair Tse --- tools/python/setup.py | 37 ++++++++++++++++++++++- tools/python/xen/__init__.py | 3 +- tools/python/xen/xend/XendNode.py | 4 ++- tools/python/xen/xend/server/SrvDaemon.py | 6 ++++ 4 files changed, 47 insertions(+), 3 deletions(-) diff --git a/tools/python/setup.py b/tools/python/setup.py index 640dcef000..f91571f627 100644 --- a/tools/python/setup.py +++ b/tools/python/setup.py @@ -1,7 +1,39 @@ +#!/usr/bin/python from distutils.core import setup, Extension import os +XEN_TOOLS_VERSION = '3.0.4' + +def embed_version(): + """ Embed Mercurial Changeset Version in xen/__init__.py. """ + try: + import commands + import re + output = commands.getoutput('hg tip') + version = XEN_TOOLS_VERSION + changeset = '' + date = '' + if output: + for line in output.split('\n'): + is_changeset = re.search(r'^changeset:\s*(.*)$', line) + if is_changeset: + changeset = is_changeset.group(1) + is_date = re.search(r'^date:\s*(.*)$', line) + if is_date: + date = is_date.group(1) + + xen_init = open('xen/__init__.py', 'w') + xen_init.write('# Warning, this file is autogenerated by setup.py\n') + if version and changeset and date: + xen_init.write('VERSION = "%s-%s (%s)"\n' % + (version, changeset, date)) + else: + xen_init.write('VERSION = "%s"\n' % version) + xen_init.close() + except: + print 'Warning: Unable to extract version.' + XEN_ROOT = "../.." extra_compile_args = [ "-fno-strict-aliasing", "-Wall", "-Werror" ] @@ -38,8 +70,11 @@ acm = Extension("acm", libraries = libraries, sources = [ "xen/lowlevel/acm/acm.c" ]) + +embed_version() + setup(name = 'xen', - version = '3.0', + version = XEN_TOOLS_VERSION, description = 'Xen', packages = ['xen', 'xen.lowlevel', diff --git a/tools/python/xen/__init__.py b/tools/python/xen/__init__.py index 8d1c8b69c3..7d86bd652d 100644 --- a/tools/python/xen/__init__.py +++ b/tools/python/xen/__init__.py @@ -1 +1,2 @@ - +# Warning, this file is autogenerated by setup.py +VERSION = "3.0.4-50:fa1d6b491cc5 (Fri Oct 06 22:50:29 2006 +0100)" diff --git a/tools/python/xen/xend/XendNode.py b/tools/python/xen/xend/XendNode.py index 789c26cd9b..c02cad4e07 100644 --- a/tools/python/xen/xend/XendNode.py +++ b/tools/python/xen/xend/XendNode.py @@ -71,7 +71,9 @@ class XendNode: def xen_version(self): info = self.xc.xeninfo() - return {'Xen': '%(xen_major)d.%(xen_minor)d' % info} + from xen import VERSION + return {'Xen': '%(xen_major)d.%(xen_minor)d' % info, + 'Xend': VERSION} def get_name(self): return self.name diff --git a/tools/python/xen/xend/server/SrvDaemon.py b/tools/python/xen/xend/server/SrvDaemon.py index 845949a756..65f042d1b5 100644 --- a/tools/python/xen/xend/server/SrvDaemon.py +++ b/tools/python/xen/xend/server/SrvDaemon.py @@ -289,6 +289,12 @@ class Daemon: log.info("Xend changeset: %s.", xinfo['xen_changeset']) del xc + try: + from xen import VERSION + log.info("Xend version: %s", VERSION) + except ImportError: + log.info("Xend version: Unknown.") + relocate.listenRelocation() servers = SrvServer.create() servers.start(status) -- 2.30.2